package com.tencent.sr.iris.activity.interfaces.request.task;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author xiaojun
 */
@Data
@ApiModel("团长任务列表请求")
public class RewardSendRequest implements Serializable {

    @ApiModelProperty(value = "外部编号", required = true)
    @NotEmpty(message = "out_trade_no必传")
    @JSONField(name = "out_trade_no")
    private String outTradeNo;

    @ApiModelProperty(value = "场景值", required = true)
    @NotEmpty(message = "transaction_flag必传")
    @JSONField(name = "transaction_flag")
    private String transactionFlag;

    @ApiModelProperty(value = "union_id", required = true)
    @NotEmpty(message = "union_id必传")
    @JSONField(name = "union_id")
    private String unionId;

    @ApiModelProperty(value = "用户uid", required = true)
    @NotEmpty(message = "uid必传")
    @JSONField(name = "uid")
    private String uid;

    @ApiModelProperty(value = "用户openid", required = true)
    @NotEmpty(message = "openid必传")
    @JSONField(name = "openid")
    private String openid;

    @ApiModelProperty(value = "奖池id", required = true)
    @NotNull(message = "open_award_pool_id必传")
    @JSONField(name = "open_award_pool_id")
    private Integer openAwardPoolId;

    @ApiModelProperty(value = "参与用户等级", required = true)
    @NotEmpty(message = "sign_up_level必传")
    @JSONField(name = "sign_up_level")
    private String signUpLevel;

    @ApiModelProperty(value = "参与时间", required = true)
    @NotEmpty(message = "sign_up_time必传")
    @JSONField(name = "sign_up_time")
    private String signUpTime;


    @ApiModelProperty(value = "任务名称", required = true)
    @NotEmpty(message = "task_name")
    @JSONField(name = "task_name")
    private String taskName;

    @ApiModelProperty(value = "任务id", required = true)
    @NotEmpty(message = "task_id必传")
    @JSONField(name = "task_id")
    private String taskId;


    @ApiModelProperty(value = "奖池坑位id", required = true)
    @JSONField(name = "open_award_pool_position_id")
    private String openAwardPoolPositionId;

    @ApiModelProperty(value = "参与开始时间", required = true)
    @JSONField(name = "valid_period_start")
    private String validPeriodStart;

    @ApiModelProperty(value = "参与结束时间", required = true)
    @JSONField(name = "valid_period_end")
    private String validPeriodEnd;

    @ApiModelProperty(value = "来源用户uid，即给上级贡献的下级uid", required = true)
    @JSONField(name = "award_source_uid")
    private String awardSourceUid;

    @ApiModelProperty(value = "下级贡献开始时间", required = true)
    @JSONField(name = "award_source_user_start_time")
    private String awardSourceUserStartTime;

    @ApiModelProperty(value = "公众号appId", required = true)
    @JSONField(name = "wechat_appid")
    private String wechatAppId;

    @ApiModelProperty(value = "归结月份", required = true)
    @JSONField(name = "expenses_timestamp")
    private Long expensesTimestamp;

    @ApiModelProperty(value = "发奖份数")
    @JSONField(name = "award_num")
    private Integer awardNum;

}
